<app-toolbar>
    <app-search-form placeholder="请输入ID"
        (onSearch)="search($event)"></app-search-form>
    <app-batch-btn 
        uploadApi="/api/subscription/import"
        downloadApi="/api/subscription/export"
        (add)="handleNew()"
        (batchDel)="handleBatchDel()"></app-batch-btn>
</app-toolbar>

<ng-template #totalTemplate let-total>总共 {{ total }} 条</ng-template>
<nz-table #basicTable [nzData]="datum" [nzFrontPagination]="false" [nzLoading]="loading" nzShowPagination [nzTotal]="total" nzShowSizeChanger [nzShowTotal]="totalTemplate" (nzPageSizeChange)="pageSizeChange($event)" (nzPageIndexChange)="pageIndexChange($event)" [nzPageSize]="pageSize" [nzPageIndex]="pageIndex" (nzQueryParams)="onQuery($event)">
    <thead>
        <tr>
            <th [nzChecked]="checked" [nzIndeterminate]="indeterminate" (nzCheckedChange)="handleAllChecked($event)"></th>
            <th nzColumnKey="id" [nzSortFn]="true">ID</th>
            <th nzColumnKey="user_id">用户</th>
            <th nzColumnKey="product_id">产品</th>
            <th nzColumnKey="device_id">设备</th>
            <th nzColumnKey="channels">通道</th>
            <th nzColumnKey="level">等级</th>
            <th nzColumnKey="disabled">状态</th>
            <th nzColumnKey="created" [nzSortFn]="true">日期</th>
            <th>操作</th>
        </tr>
    </thead>
    <tbody>
        <tr *ngFor="let data of basicTable.data; let i = index">
            <td [nzChecked]="setOfCheckedId.has(data.id)" (nzCheckedChange)="handleItemChecked(data.id, $event)"></td>
            <td>{{ data.id }}</td>
            <td>{{ data.user || data.user_id }}</td>
            <td>{{ data.product || data.product_id }}</td>
            <td>{{ data.device || data.device_id }}</td>
            <td>{{ data.channels }}</td>
            <td>{{ data.level }}</td>
            <td>
                <nz-tag nzColor="success" *ngIf="data.disabled"> 启用 </nz-tag>
                <nz-tag nzColor="error" *ngIf="!data.disabled"> 禁用 </nz-tag>
            </td>

            <td>{{ data.created | date }}</td>
            <td>
                <a (click)="edit(data.id)">
                    <i nz-icon nzType="edit"></i>
                </a>
                <nz-divider nzType="vertical"></nz-divider>
                <a nz-popconfirm nzPopconfirmTitle="确定删除?" (nzOnConfirm)="delete(data.id)" (nzOnCancel)="cancel()" nzPopconfirmPlacement="topLeft">
                    <i nz-icon nzType="delete"></i>
                </a>

                <nz-divider nzType="vertical"></nz-divider>
                <a *ngIf="!data.disabled" (click)="disable(1, data.id)">
                    启用
                </a>
                <a *ngIf="data.disabled" (click)="disable(0, data.id)">
                    禁用
                </a>
            </td>
        </tr>
    </tbody>
</nz-table>
